home *** CD-ROM | disk | FTP | other *** search
/ EnigmA Amiga Run 1999 March / EnigmA AMIGA RUN 35 (1999)(G.R. Edizioni)(IT)[!][issue 1999-03].iso / www / amitrix / swedish31.lha / Docs / docsearch.awebrx < prev    next >
Text File  |  1998-01-20  |  5KB  |  138 lines

  1. /*******************************************************************
  2.  *                                                                 *
  3.  * Docsearch.awebrx                                                *
  4.  *                                                                 *
  5.  * © 1997 Yvon Rozijn                                              *
  6.  *                                                                 *
  7.  * Sök i AWeb-manualen. Skapa index om så begärs eller ingen       *
  8.  * indexfil existerar. Sök i indexfilen och skicka resultatet      *
  9.  * till AWeb.                                                      *
  10.  *                                                                 *
  11.  *******************************************************************/
  12.  
  13. /*******************************************************************
  14.  *                                                                 *
  15.  * För att använda den här som en söktjänst för din egna lokala    *
  16.  * HTML-filer, justera följande variabler:                         *
  17.  *                                                                 *
  18.  * index = sökväg till indexfilen                                  */
  19.  
  20. index = 'AWebPath:docs/docsearch.index'
  21.  
  22. /* makeindex = kommandorad för att skapa indexet                   *
  23.  * Indexskaparprogrammet har mallen DIR/A/M,TO/A                   *
  24.  * DIR = lådor att söka efter #?.html-filer i (ej rekursivt)       *
  25.  * TO = namn på indexfil som skall skapas                          */
  26.  
  27. makeindex = 'AWebPath:docs/makeindex AWebPath:docs AWebPath:docs/plugins AWebPath:docs/settings AWebPath:docs/arexx' index
  28.  
  29. /* resultfile = sökväg till fil där resultatet lagras              */
  30.  
  31. resultfile = 'T:docsearch'
  32.  
  33. /* searchindex = kommandorad för att söka i indexet. Sökargumenten *
  34.  * läggs till kommandoraden.                                       *
  35.  * Sökprogrammet har mallen INDEX/A,TO/A,SEARCH/A/F                *
  36.  * INDEX = sökväg till indexfil                                    *
  37.  * TO = sökväg för sökresultat                                     *
  38.  * SEARCH = text att söka efter                                    */
  39.  
  40. searchindex = 'AWebPath:docs/searchindex' index resultfile
  41.  
  42. /* och justera HTML-koden i sökresultatet till att passa din       *
  43.  * tillämpning.                                                    *
  44.  *                                                                 *
  45.  *******************************************************************/
  46.  
  47. options results
  48. options failat 20
  49.  
  50. parse source dummy1 dummy2 programname .
  51.  
  52. parse arg sarg
  53.  
  54. search=''
  55. regenerate=''
  56. interpret sarg
  57.  
  58. if search='' & regenerate='' then exit
  59.  
  60. su=upper(search)
  61.  
  62. nl='0a'x
  63.  
  64. if regenerate~='' | ~exists(index) then do
  65.    'chanopen "x-nil:docsearch/creating index"'
  66.    ch=result
  67.  
  68.    'open "x-nil:docsearch/creating index"'
  69.  
  70.    'chanheader' ch '"content-type: text/html"'
  71.    'chanheader' ch '"pragma: no-cache"'
  72.  
  73.    doc='<html><title>Skapar sökindex</title>*N'
  74.    doc=doc || '<body><h1>Skapar index</h1>*N'
  75.    doc=doc || 'Ett sökindex skapas. Var god vänta...'
  76.  
  77.    'chandata' ch '"' || doc || '" nl'
  78.    'chanclose' ch
  79.  
  80.    address command makeindex
  81. end
  82.  
  83. if search='' then do
  84.    'go back'
  85.    exit
  86. end
  87.  
  88. if ~exists(index) then exit
  89.  
  90. 'chanopen "file:///nil:docsearch/' || search || '"'
  91. ch=result
  92.  
  93. 'chanheader' ch '"content-type: text/html"'
  94. 'chanheader' ch '"pragma: no-cache"'
  95.  
  96. doc='<html><title>Sökresultat:' search '</title>*N'
  97. doc=doc || '<base href=*"file:///AWebPath:docs/aweb.html*">*N'
  98. doc=doc || '<body background=awebbg.iff>*N'
  99. doc=doc || '<h1><img src=aweb.iff width=192 height=93 alt=*"(logo)*">  Sökresultat:' search '</h1>*N'
  100.  
  101. 'chandata' ch '"' || doc || '" nl'
  102.  
  103. doc='<form action=*"x-aweb:rexx/' || programname || '*">*N'
  104. doc=doc || 'Sök i manualen: <input name=search size=25 value=*"' || search || '*"> <input type=submit value=*"Sök*">*N'
  105. doc=doc || '</form>*N'
  106. doc=doc || '<ol>'
  107.  
  108. 'chandata' ch '"' || doc || '" nl'
  109.  
  110. 'open "file:///nil:docsearch/' || search || '"'
  111. 'allowcmd'
  112.  
  113. address command searchindex '"' || search || '"'
  114.  
  115. if open(f,resultfile,'R') then do
  116.    do until length(block)<480
  117.       block=readch(f,480)
  118.       /* Undvik problem om blocket slutar med "*".
  119.        * searchindex borde dock vara bättre här...
  120.        */
  121.       if right(block,1)="*" then block=block||readch(f,1)
  122.       'chandata' ch '"' || block || '"'
  123.    end
  124.    call close f
  125.    address command 'delete' resultfile 'quiet'
  126. end
  127.  
  128. doc='</ol>*N'
  129. doc=doc || '<hr><a href=*"file:///AWebPath:docs/aweb.html*">Tillbaka till index</a>*N'
  130.  
  131. doc=doc || '<br><br><hr><form action=*"x-aweb:rexx/' || programname || '*">*N'
  132. doc=doc || '<b>Tips:</b> När du har lagt till nya manualfiler,*N'
  133. doc=doc || '<input type=submit name=Regenerate value=*"skapa*">*N'
  134. doc=doc || 'sökindexet igen för att få rätt sökresultat.*N</form>'
  135.  
  136. 'chandata' ch '"' || doc || '" nl'
  137. 'chanclose' ch
  138.